package sadmin

import (
	"errors"
	"github.com/astaxie/beego/orm"
	"shop/models/common"
	"strings"
)

type Typ struct {
	Id int
	Apptype string
}
func init()  {
	orm.RegisterModel(new(Typ))
}
func TypeAdd(t Typ)  error{
	tt:=common.StrDelTrim(t.Apptype)
	if tt==""{
		return errors.New("type can't be null")
	}
	if findTypeByName(tt).Id!=0{
		return errors.New("exist")
	}
	o:=orm.NewOrm()
	_,er:=o.Insert(&t)
	return er
}
func TypeShow() ([]Typ,error) {
	o := orm.NewOrm()
	var c []Typ
	com := new(Typ)
	qs := o.QueryTable(com)
	_, err := qs.All(&c)
	return c, err
}
func TypeShowById(id int) (Typ) {
	o:=orm.NewOrm()
	com:=Typ{Id:id}
	_=o.Read(&com,"id")
	return com
}
func TypeEdit(t Typ) error {
	tt:=common.StrDelTrim(t.Apptype)
	if tt==""{
		return errors.New("type can't be null")
	}
	o := orm.NewOrm()
	user := Typ{Id: t.Id}
	if o.Read(&user) == nil {
		//重复检测
		if findTypeByName(tt).Id!=0{
			return errors.New("exist")
		}
		user.Apptype=tt
		_, err := o.Update(&user)
		return err
	}else {
		return errors.New("don't exist")
	}
}
func TypeDel(id int) error {
	if TypeShowById(id).Apptype==""{
		return errors.New(" dont exist")
	}
	o:=orm.NewOrm()
	_,err:=o.Delete(&Typ{Id:id})
	return err
}

func findTypeByName(t string) (Typ) {
	o:=orm.NewOrm()
	com:=Typ{Apptype:t}
	_=o.Read(&com,"apptype")
	return com
}

func Checkrole(to string) error {
	account:="string"
	str:=strings.Split(to,",")
	if len(str)!=2{
		return errors.New("token fail")
	}
	er:=CheckToken(str[0])
	account=str[1]
	if er!=nil{
		return er
	}
	i:=findRole(account)
	if i!=1{
		return  errors.New("have no access")
	}
	return nil
}
func Checkrole2(to string) error {
	account:="string"
	str:=strings.Split(to,",")
	if len(str)!=2{
		return errors.New("token fail")
	}
	er:=CheckToken(str[0])
	account=str[1]
	if er!=nil{
		return er
	}
	i:=findRole(account)
	if i!=1&&i!=2{
		return  errors.New("have no access")
	}
	return nil
}